home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Muzyka / Edytory sampli (probek dzwieku) / ZynAddSubFX_2.2.0 / Setup_ZynAddSubFX-2.2.0.exe / source code / Params / EnvelopeParams.h < prev    next >
C/C++ Source or Header  |  2005-03-14  |  3KB  |  87 lines

  1. /*
  2.   ZynAddSubFX - a software synthesizer
  3.  
  4.   EnvelopeParams.h - Parameters for Envelope
  5.   Copyright (C) 2002-2005 Nasca Octavian Paul
  6.   Author: Nasca Octavian Paul
  7.  
  8.   This program is free software; you can redistribute it and/or modify
  9.   it under the terms of version 2 of the GNU General Public License 
  10.   as published by the Free Software Foundation.
  11.  
  12.   This program is distributed in the hope that it will be useful,
  13.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.   GNU General Public License (version 2) for more details.
  16.  
  17.   You should have received a copy of the GNU General Public License (version 2)
  18.   along with this program; if not, write to the Free Software Foundation,
  19.   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  20.  
  21. */
  22.  
  23. #ifndef ENVELOPE_PARAMS_H
  24. #define ENVELOPE_PARAMS_H
  25.  
  26. #include "../globals.h"
  27. #include "../Misc/XMLwrapper.h"
  28. #include "Presets.h"
  29.  
  30. #define MAX_ENVELOPE_POINTS 40
  31. #define MIN_ENVELOPE_DB -40
  32.  
  33. class EnvelopeParams:public Presets{
  34.     public:
  35.     EnvelopeParams(unsigned char Penvstretch_,unsigned char Pforcedrelease_);
  36.     ~EnvelopeParams();
  37.     void ADSRinit(char A_dt,char D_dt,char S_val,char R_dt);
  38.     void ADSRinit_dB(char A_dt,char D_dt,char S_val,char R_dt);
  39.     void ASRinit(char A_val,char A_dt,char R_val,char R_dt);
  40.     void ADSRinit_filter(char A_val,char A_dt,char D_val,char D_dt,char R_dt,char R_val);
  41.     void ASRinit_bw(char A_val,char A_dt,char R_val,char R_dt);
  42.     void converttofree();
  43.  
  44.     void add2XML(XMLwrapper *xml);
  45.     void defaults();
  46.     void getfromXML(XMLwrapper *xml);
  47.  
  48.     REALTYPE getdt(char i);
  49.  
  50.        /* Parametrii MIDI */
  51.         unsigned char Pfreemode;//1 daca este in modul free sau 0 daca este in mod ADSR,ASR,...
  52.     unsigned char Penvpoints;
  53.     unsigned char Penvsustain;//127 pentru dezactivat
  54.         unsigned char Penvdt[MAX_ENVELOPE_POINTS];
  55.     unsigned char Penvval[MAX_ENVELOPE_POINTS];
  56.     unsigned char Penvstretch;//64=normal stretch (piano-like), 0=no stretch
  57.     unsigned char Pforcedrelease;//0 - OFF, 1 - ON
  58.     unsigned char Plinearenvelope;//if the amplitude envelope is linear
  59.     
  60.     unsigned char PA_dt,PD_dt,PR_dt,
  61.          PA_val,PD_val,PS_val,PR_val;
  62.  
  63.  
  64.  
  65.     int Envmode;// 1 for ADSR parameters (linear amplitude)
  66.             // 2 for ADSR_dB parameters (dB amplitude)
  67.             // 3 for ASR parameters (frequency LFO)
  68.             // 4 for ADSR_filter parameters (filter parameters)
  69.             // 5 for ASR_bw parameters (bandwidth parameters)
  70.  
  71.     private:
  72.     void store2defaults();
  73.  
  74.     /* Default parameters */
  75.     unsigned char Denvstretch;
  76.     unsigned char Dforcedrelease;
  77.     unsigned char Dlinearenvelope;
  78.     unsigned char DA_dt,DD_dt,DR_dt,
  79.          DA_val,DD_val,DS_val,DR_val;
  80.  
  81.  
  82. };
  83.  
  84.  
  85. #endif
  86.  
  87.